package com.easy.cloud.web.module.certification.api.dto;

import com.easy.cloud.web.module.certification.api.enums.AuthenticationTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * PersonalAuthentication请求数据
 *
 * @author Fast Java
 * @date 2024-02-18 11:55:13
 */
@Data
@Builder
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "PersonalAuthenticationDTO", description = "个人认证信息")
public class PersonalAuthenticationDTO {
    /**
     * 文档ID
     */
    @ApiModelProperty(value = "文档ID", required = false)
    private String id;
    /**
     * 认证类型
     */
    @ApiModelProperty(value = "认证类型", required = false)
    private AuthenticationTypeEnum authenticationType;
    /**
     * 残疾人证书编号
     */
    @ApiModelProperty(value = "残疾人证书编号", required = false)
    private String disabilityCardNo;
    /**
     * 伤残等级ID
     */
    @ApiModelProperty(value = "伤残等级ID", required = false)
    private String disabilityLevelId;
    /**
     * 用户昵称
     */
    @ApiModelProperty(value = "用户昵称", required = false)
    private String nickName;
    /**
     * 用户名称
     */
    @ApiModelProperty(value = "用户名称", required = true)
    @NotBlank(message = "认证用户名不能为空")
    private String userName;
    /**
     * 性别： 0 未知的性别 1 男 2 女 9 未说明的性别
     */
    @ApiModelProperty(value = "性别： 0 未知的性别 1 男 2 女 9 未说明的性别", required = true)
    @NotNull(message = "认证用户性别不能为空")
    private Integer gender;
    /**
     * 用户身份证
     */
    @ApiModelProperty(value = "用户身份证", required = true)
    @NotBlank(message = "认证用户身份证不能为空")
    private String identityCard;
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话", required = true)
    @NotBlank(message = "联系电话不能为空")
    private String tel;
    /**
     * 联系邮件
     */
    @ApiModelProperty(value = "联系邮件", required = false)
    private String email;

    /**
     * 省份
     */
    @ApiModelProperty(value = "省份", required = true)
    @NotBlank(message = "省份不能为空")
    private String province;
    /**
     * 城市
     */
    @ApiModelProperty(value = "省份", required = true)
    @NotBlank(message = "城市不能为空")
    private String city;
    /**
     * 地区
     */
    @ApiModelProperty(value = "地区", required = false)
    private String district;
    /**
     * 街道
     */
    @ApiModelProperty(value = "街道", required = false)
    private String street;
    /**
     * 地址
     */
    @ApiModelProperty(value = "地址", required = false)
    private String address;
}